// ----------------- Range  --------------------
1 to 10
// 设定步长
1 to 10 by 2
(1 to 10).toList
// 后开区间
1 until 10

// ----------------- Stream  --------------------
// Stream的连接操作符为#:: 定义了一个类型为Int的Stream
// 只有将第一个设定值1，其他的暂时不设定值而是？，这就是lazy list
1 #:: 2 #:: 3 #:: Stream.empty

// 惰性求值，后面的数据是不固定的,按需求值
val stream = (1 to 10000000).toStream

stream.head
stream.tail

// ----------------- Tuple元组  --------------------
(1, 2)
1->2
val t = (1, "Alice", "Math", 95.5)
t._1
t._2
t._3
t._4

val a = List(1, 2, 3, 4, 5)

// 同时求第一个元素+1  第二个元素和  第三个元素平方和的函数
def sumSq(in : List[Int]) : (Int, Int, Int) =
  in.foldLeft((0,0,0))((t,v)=>(t._1 + 1, t._2 + v, t._3 + v*v))

// 结果解析：a一共有5个元素  求和是15  平方和是55
sumSq(a)

// ----------------- Map[K,V]  --------------------
val p = Map(1->"David", 9->"Elwood")
// 取值
p(1)
p(9)
p.contains(1)
p.contains(2)

p.keys
p.values

// 新增
p + (8->"Archer")
// 删除
p-1

// key加上多个值
p ++ List(2->"Alice", 5->"Bob")
// key减去多个值
p -- List(1,9)

p ++ List(2->"Alice", 5->"Bob") -- List(9,1)


